import request from '@/utils/request'
import {
  AddScoreParams,
  UpdateScoreParams,
  AddScoreRes,
  UpdateScoreRes,
  DeleteScoreByScoreIdRes,
} from './type'
/**
 * 添加成绩（管理员,老师）
 * @param {object} params 新增成绩表
 * @param {number} params.enrollmentId 选课ID
 * @param {number} params.studentId 学生ID
 * @param {number} params.grade 课程成绩
 * @param {number} params.usualGrade 平时成绩
 * @param {number} params.examGrade 考试成绩
 * @returns
 */
export function addScore(params: AddScoreParams): Promise<AddScoreRes> {
  return request.post(`/teaching_system/scores/addScore`, params)
}

/**
 * 删除成绩（管理员、老师）
 * @param {string} scoreId
 * @returns
 */
export function deleteScoreByScoreId(
  scoreId: number,
): Promise<DeleteScoreByScoreIdRes> {
  return request.delete(`/teaching_system/scores/delete?scoreId=${scoreId}`)
}

/**
 * 管理员获取所有用户的成绩
 * @param {string} scorePageQuery
 * @returns
 */
export function showScoresByAdmin(scorePageQuery: string) {
  return request.get(`/teaching_system/scores/getByAdmin?${scorePageQuery}`)
}

/**
 * 学生获取自己的成绩
 * @param {string} scorePageQuery
 * @returns
 */
export function showScoresByStudent(scorePageQuery: string) {
  return request.get(`/teaching_system/scores/getByStudent?${scorePageQuery}`)
}

/**
 * 老师获取自己学生的成绩
 * @param {string} scorePageQuery
 * @returns
 */
export function showScoresByTeacher(scorePageQuery: string) {
  return request.get(`/teaching_system/scores/getByTeacher?${scorePageQuery}`)
}

/**
 * 更新成绩（管理员、老师）
 * @param {object} params 修改成绩表
 * @param {number} params.scoreId 成绩ID
 * @param {number} params.enrollmentId 选课ID
 * @param {number} params.studentId 学生ID
 * @param {number} params.grade 课程成绩
 * @param {number} params.usualGrade 平时成绩
 * @param {number} params.examGrade 考试成绩
 * @returns
 */
export function updateScore(
  params: UpdateScoreParams,
): Promise<UpdateScoreRes> {
  return request.put(`/teaching_system/scores/updateScore`, params)
}
